package com.tencreat.service.mall;

import java.util.List;

import com.tencreat.common.core.domain.model.ReqIdParam;
import com.tencreat.common.core.domain.model.ReqIdsParam;
import com.tencreat.domain.mall.MallDeliverAddress;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tencreat.domain.mall.dto.MallShipAddressDTO;

/**
 * 平台/供应商发货地址Service接口
 *
 * @Author tencreat
 * @Company: 深圳腾创互联科技有限公司
 * @link: https://tencreat.com
 * @Date 2022-12-08
 */
public interface IMallDeliverAddressService extends IService<MallDeliverAddress> {
    /**
     * 查询平台/供应商发货地址
     *
     * @param id 平台/供应商发货地址ID
     * @return 平台/供应商发货地址
     */
    public MallDeliverAddress selectMallDeliverAddressById(ReqIdParam id);

    /**
     * 查询平台/供应商发货地址列表
     *
     * @param mallDeliverAddress 平台/供应商发货地址
     * @return 平台/供应商发货地址集合
     */
    public List<MallDeliverAddress> selectMallDeliverAddressList(MallDeliverAddress mallDeliverAddress);

    /**
     * 新增平台/供应商发货地址
     *
     * @param mallDeliverAddress 平台/供应商发货地址
     * @return 结果
     */
    public int insertMallDeliverAddress(MallDeliverAddress mallDeliverAddress);

    /**
     * 修改平台/供应商发货地址
     *
     * @param mallDeliverAddress 平台/供应商发货地址
     * @return 结果
     */
    public int updateMallDeliverAddress(MallDeliverAddress mallDeliverAddress);

    /**
     * 批量删除平台/供应商发货地址
     *
     * @param ids 需要删除的平台/供应商发货地址ID
     * @return 结果
     */
    public int deleteMallDeliverAddressByIds(ReqIdsParam ids);

    /**
     * 删除平台/供应商发货地址信息
     *
     * @param id 平台/供应商发货地址ID
     * @return 结果
     */
    public int deleteMallDeliverAddressById(ReqIdParam id);

    /**
     * 设置退货地址
     * @param dto
     * @return
     */
    int shipAddress(MallShipAddressDTO dto);

    /**
     * 退货地址
     * @param addressId
     * @return
     */
    String refundAddress(Long addressId);
}
